LSORT (C) Copyright London Computing, 1983 - 1993 LSRT (C) Copyright London Computing, 1983 - 1992 LSORT consists of two sort utilities, LSRT and LSORT as well as object code for LSORT (which you can use to create a customized version). LSORT now runs under both DOS (3.3 and above) and OS2. LSRT is a replacement for the DOS SORT command. It runs on IBM PCs and compatibles with at least 256KB and either two floppy disks or a fixed disk. It will sort MSDOS ASCII files on 1 to 16 sort fields. The file to be sorted must contain variable length records ending with cr/lf. It is written using large model and will sort files of up 16000 records that will fit into memory. A Microsoft Windows version of LSRT is also included. This contains a Visual Basic front end to LSRT and a version of LSRT that runs under Microsoft Windows. The Visual Basic run time library is needed to run LSRT for Windows. It is not included, but is available on CompuServ and other BBS's. See LSORT.DOC for installation instructions. LSORT is a full function sort program that will sort and merge on 32 fields. Each field may be a character string, a binary number or a floating point numbers. LSORT sorts or merges files that are larger than memory, dBase II and dBase III files. LSORT allows user exits for customized applications. A Microsoft Windows version of LSORT is also included. This contains a Visual Basic front end to LSORT and a version of LSORT that runs under Microsoft Windows. The Visual Basic run time library is needed to run LSORT for Windows. It is not included, but is available on CompuServ and other BBS's. Note please that when the Windows version runs, a second sort window is opened. You can see the status of the sort and error messages displayed in this window. The window stays open after the sort completes and must be closed by using the FILE-Exit option on the menu line. See LSORT.DOC for installation instructions. You may make copies of this software and distribute to other users as long as there is no charge or other consideration and this notice is not removed or bypassed. LSORT and LSRT are user supported software. If either program proves useful, please make a contribution ($20 for LSRT or $35 for LSORT and LSRT) to: London Computing PO Box 696 Cherry Hill, NJ 08003 Anyone contributing at least $35 will receive a diskette containing the source (in C) for both LSORT and LSRT. Source is available for Microsoft C 6.0 only. LSORT now uses OS2 Family API Calls. You will need Microsoft C 6.0 or the Microsoft or IBM OS2 SDK to compile and link LSORT. The source to release 3.12 with bug fixes will be available on Request. 3.12 is a DOS only release using proprietary screen libraries, which are included. Please report any problems or bugs to me at Compuserv account 72437,730, Internet address nlondon@omni.voicenet.com or by mail to the above address. Thanks, Norm London Coming Soon: A Windows install program, a verify option to determine if a file is sorted correctly, 32 bit versions of LSRT for OS/2 and Windows NT. What's New: Version 3.52 LSORTNT runs under both Windows NT and Windows 95. LSORTWN3, the Visual Basic front end program automatically invokes LSORT for Windows when running under DOS/WINDOWS and LSORTNT when running under Windows NT or Windows 95. LSORTWN3 now allows you to visually inspect a sample record when defining fields. It also allows you to mark a field by clicking on the first character and dragging the mouse to the last character. When in this mode, the starting position and field length are returned. LSORTWN3 now provides help functions when defining fields. When LSORTWN3 starts LSORT or LSORTNT, it opens a second window while the sort executes. This versions leaves the window open until a key is pressed, allowing you to see the results from the sort. A bug causing improper sorting of xBase files under 32 bit environments has been fixed. Version 3.51 The Windows Version of LSORT, LSORTWIN, is now compiled under Visual C++. The source has been modified to compile a 16 bit DOS version, a 16 bit Windows Version, a 16 bit OS2 version, a 32 bit OS2 version and a 32 bit Windows NT version. The 16 bit DOS and IBM OS/2 versions require Microsoft C 6.0. The 16 bit Microsoft Windows version requires the Microsoft Visual C++ Compiler. The 32 bit IBM OS2 version requires the IBM C Compiler. The 32 bit Microsoft Windows NT version requires the Visual C++ for NT Compiler. The programs have been modified to provide a better display of the process of a sort/merge operation, reporting in % completion. A long sort operation now reports status instead of running quietly, looking like a hung computer. If a work volume does not contain enough room for a merge work file, you are given the option of selecting another drive. The Visual Basic Front End for LSORT now allows you to display the contents of the input and output files in Hex as well as Text. The Visual Basic Front End for LSORT now supports the Merge functions of LSORT. The Visual Basic Front End for LSORT now can be used to front end the Windows NT and OS2 2.x versions of LSORT. Version 3.41 A new field type has been added: Binary -- A binary field is a fixed size field that is sorted from left to right, one byte at a time byte the value of the field. It is similar to Character except that the compare does not end at the first null character (0) in the string. It is useful for comparing fields that contain null characters or binary numbers stored in IBM mainframe order. A Packed Decimal field type has also been added as well. The rules for packed numbers should follow those in use on IBM Mainframes, but its been a while. The rules in use for the packed comparison are: o Packed Numbers can be from 1-8 bytes long representing from 1-15 digits. o Each digit position takes up 4 bits and contains a value between 0 and 10. o Digits are stored from left to right in adjacent 4 bit fields, two digits to a byte. o The sign is stored in the rightmost 4 bits and should contain 0x0D to indicate negative, 0x0C or 0x0F to indicate positive. If any other values are stored in the sign field, the data will not sort properly. Version 3.34 The windows versions of LSORT have been migrated to Visual Basic 2.0. Standard dialog boxes have been used in LSORTWIN, but LSRTWIN has not changed. VBRUN200.DLL (not included) and CMDIALOG.VBX must be copied to your WINDOWS\SYSTEM sub-directory. Version 3.33 LSORT has been fixed to work properly when a merge file contains a multiple of 16,000 records under OS2. Varient of the problem fixed in Version 3.32. (It worked OK under DOS and still works OK under DOS). Merge has been modifed to not create a MERGE file containing only one string if there is enough room on the output disk to hold the entire file. This will make the merge somewhat faster if you have specified different merge work drives, one of the drives is the output drive and the last pass would write to the other drive. Version 3.32 LSORT has been fixed to work properly when a multiple of 16,000 records is read under OS2. (It worked OK under DOS and still works OK under DOS). LSRT has been fixed to work properly when command line arguments are omitted under OS2. Version 3.31 Includes LSORT for Windows. Also includes release 1.01 of the DOS and OS2 SAA like menus for LSORT, LSMENU. Release 3.31 of LSORT now support FOXPRO databases that include memo fields. dBase databases that include memo fields have been supported since version 3.0. LSORT now supports the FOXPRO and dBase IV type F (Floating) fields. NOTE: for DESQVIEW Users: LSMENU must be run in a window set to WRITES DIRECTLY to SCREEN. Virtualization is allowed. Version 3.30 Fixes a sort bug that sometimes incorrectly sorted fixed length records. Includes LSRT for Windows. Version 3.21 Fixes a merge bug that sometime writes the output file to an incorrect drive. It was most likely to occur if output is sent to a RAM disk or network drive. SORTPARM.DAT and DB3PARM.DAT, two files used by the restart facility, are now deleted upon successful completion of LSORT. Version 3.20 Fixes a merge bug introduced in version 3.12 that limits the size of a file to sort. LSORT has been migrated to run under DOS and OS2 as a Family Mode Application. The menu program is LSMENU under DOS and LSMENU2 under OS2. The maximum number of intermediate files created by a sort has increased from 5 to 9. This will minimize the number of passes for large files, but requires that FILES=32 be specified in CONFIG.SYS. The maximum number of strings that can be merged increased from 256 to 1024. This increases the maximum number of records that can be sorted to 16,000,000 from 2,000,000. A string is created when all the data that fits in memory is sorted. This could be as few as 12 4K records to as many as 16,000. The size of a string depends on the amount of memory available and the record length. The maximum size of a filename has increased to 256 characters to allow for use of HPFS under OS2. Version 3.12 Version 3.12 fixes a merge bug in Version 3.11 Version 3.11 Version 3.11 has been rewritten to eliminate use of my private function library. Some special functions have been incorporated into the source of Version 3.11. Two special object files are needed: scrsubs.obj and dvint.obj. These provide full screen manipulation and an interface to Desqview. Source is not available. The LSMENU program is no longer in Beta. Source for LSMENU is still NOT available. A new version of LSRT, LSRTOS2, has been included. LSRT has been relinked as a family mode DOS/OS2 program and should run under either. Version 3.10 (Beta) This version of LSORT (3.10) fixes several problems with sorting type N (numeric data in ASCII form). It also enhances type N to accept scientific notation of the form x.xxxExxx. LSORT 3.10 contains a friendly front end to LSORT, LSMENU 1.00. LSMENU is an SAA like front end to LSORT that runs in character mode. It allows you to easily invoke the sort. The source for LSMENU is not available because I have used 3rd party screen manipulation subroutines. LSMENU does not currently support delimited fields. This facility will be added soon. LSMENU does allow you to select dBase fields to sort by name and allows you to mark sort fields in type F and type V files. LSORT still exists for anyone who wants to continue using command mode. LSORT is now available in Microsoft C format only. Version 3.02 This version of LSORT (3.02) contains bug fixes, LSORT for Microsoft C 5.1 and a new version of the LSRT sort filter. It also contains a new mechanism for selecting files and a utility program, SELEFILE.EXE which can be called from your own applications. LSRT now will sort up to 16,000 records or the maximum file size that will fit in memory, up from 6000 records and 48,000 bytes. It must be compiled using Microsoft C Rel 5.0 or above and it must use the large case libraries. Extracting LSORT This disk contains either one EXE file which is a self extracting LHA file, or a .ZIP file. Run the EXE to extract all executables, object for LSORT, LSORT.MAK a Microsoft NMAKE version make file (for use with QuickCs make facility), LSORT.CRF a link redirection file for relinking LSORT, LSORT.HLP HELP for LSORT and descriptive text. If you have received the .ZIP file, use PKUNZIP to extract all files. Registered users will also extract all the source for LSORT and LSMENU with the exception of the CSUBS and CDRIVER source which can not be distributed.